
package com.example.stringbufferlogger.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 流量回放日志
 * 对应数据库表：REPLAYLOG
 */
@Data
@TableName("replay_log")
public class ReplayLog implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO) // 主键
    private Long Id;

    @TableField("requestid")
    private String requestId;         // 请求ID

    @TableField("method")
    private String method;             // 请求方法

    @TableField("url")
    private String url;                // 完整URL(包含查询参数)

    @TableField("path")
    private String path;               // 请求路径

    @TableField("remoteip")
    private String remoteIp;           // 远程IP地址

    @TableField("sessionid")
    private String sessionId;          // 会话ID

    @TableField("duration")
    private BigDecimal duration;       // 请求持续时间(毫秒)

    @TableField("headers")
    private String headers;            // 请求头(JSON格式)

    @TableField("requestparams")
    private String requestParams;      // 请求参数(JSON格式)

    @TableField("requestbody")
    private String requestBody;        // 请求体内容

    @TableField("responsebody")
    private String responseBody;       // 响应体内容

    @TableField("isupload")
    private Integer isUpload;          // 是否上传(1:是,0:否)

    @TableField("isdownload")
    private Integer isDownload;        // 是否下载(1:是,0:否)

    @TableField("contenttype")
    private String contentType;        // 请求内容类型

    @TableField("status")
    private Integer status;            // 响应状态码

    @TableField("sessionattributes")
    private String sessionAttributes;  // 会话属性(JSON格式)

    @TableField("replay_status")
    private String replayStatus;          // 回放状态(0-待回放，1-回放完成)

    @TableField("timestamp")
    private String timeStamp;

    @TableField("createtime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date createTime;           // 记录创建时间

    @TableField("compare_status")
    private String compareStatus;          // 回放状态(0-待回放，1-回放完成)

}